Skip to content
main
Switch branches/tags
jam0001/Echoes/
jam0001/Echoes/

Latest commit

* Add really basic lexer+parser

* Parse Numeric expressions

Add support for parsing number calculations

* Add basic routine expression

* Better ast logging

This is horrible code-wise.
Should be fixed/thrown away ASAP!!!

* Fix indent in routine.nodes

* Add =, < and > parsing

* Ignore stuff

* Add interpreter

* Add interpreter

* Update to compile more stuff

* Add if/else

* thing

* Add loops fix float/int arithmetic

* Changes

* Linux dependency

* stuff

* incomplete

* Last commit

remove stuff I can't complete

Commit examples

Readme stuff

refactor README

weekend

* mark as late entry

Co-authored-by: Yuval <yuval.tasher@gmail.com>
f207495

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
Aug 23, 2021
Aug 20, 2021

About

Hello! this is my very incomplete entry for LangJam 1!

In this language, you can declare numeric variables, like :12!

Comments

The comments are in first-class seats, you can't interact with them.

Examples

Fibonacci

:1, :2, :3 and :n are variables

:1 2
:2 1
:3 0
:n 10
loop :n > 0 {
    log :2
    :3  :1 + :2
    :1  :2
    :2  :3
    :n  :n - 1
}

if/else

if (1 + 2 * 5) = 10 {
    log "Yo this language is so cool!"
} else {
    log "This language is trash"
}

Dependencies

  • Linux - you must use Linux to compile and run this program. Tested on Ubuntu 20.04. Not tested with WSL.
  • Git - to clone this repository
  • GNU Make - to build the project
  • GCC - to compile stuff

Build

To build, write make.

To run the interpreter, write ./ech, and it will show you a help menu.

Notes

  • It will probably not work as expected sometimes.
  • Expect segfaults and stupid stuff.
  • This was my first time writing a language!
  • I wasn't home for a big chunk of the weekend.
  • I will probably continue to develop it, because I like the language's concept.
  • Float arithmetic might be broken sometimes.
  • A lot of stuff is incomplete :c.
  • There is no garbage collector/freeing, so your computer will explode at some point.
  • You can check other people's projects, they must be better!
  • Routines are incomplete.